Storage system and method of storage system path control

ABSTRACT

The present invention uses memory resources effectively and connects each storage device by a plurality of paths in a switchable manner, thus improving reliability and ease of use, by virtualizing external memory resources as internal memory resources. External storage  2  is connected to the main storage  1 , and the actual volume  2 A is mapped onto the virtual volume  1 A. A plurality of paths is connected between the storage  1  and  2 . When a failure occurs in a path in use (S 3 ), the path having the next highest priority is selected (S 4 ), and processing is continued using this path (S 5 ).

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of application Ser. No.11/070,182, filed Mar. 3, 2005 now abandoned; which relates to andclaims priority from Japanese Patent Application No. 2004-372713 filedon Dec. 24, 2004, the entire disclosure of which is incorporated hereinby reference.

BACKGROUND OF THE INVENTION

The present invention relates to a storage system and a method ofstorage system path control.

For example, in order to handle large volumes of various types of datain government, public offices, local authorities, industry, andeducational institutions and the like, comparatively large-scale storagesystems are used in management of data. These storage systems are, forexample, comprised of disk array devices and the like. Since a diskarray device is comprised of a plurality of storage devices arranged inan array, for example, a storage area based on a RAID (Redundant Arrayof Independent Disks) is provided.

At least one logical volume (logical unit) is formed in the physicalstorage area provided by the group of storage devices, and this logicalvolume is provided to the host computer (that is to say, the databaseprogram running on the host computer). By sending the prescribedcommand, the host computer (hereafter referred to as the ‘host’) canwrite data to, and read data from, the logical volume.

Data to be managed increases daily in association with development ofthe information society. Storage devices of greater performance andcapacity are therefore required, and storage systems employing aplurality of storage devices are sometimes configured in response tothese market demands.

When configuring storage systems employing a plurality of storagedevices, a method whereby existing old types of storage device arereplaced by new types of storage device is known (see Published JapaneseTranslation No. H10-508967 of PCT International Publication). In theconventional technology disclosed in this document, a time zone of lowload is determined, and data on the existing storage device is migratedto the newly installed storage device.

The technology disclosed in the afore-mentioned document simply replacesthe existing storage device with a newly installed storage device. Inthis document, one storage device uses the storage resources of anotherstorage device in an autonomous manner, and thus the effective use ofoverall storage resources of the storage system is not considered.

As disclosed in the afore-mentioned document, when completely migratingdata from an old type of storage device to a new type of storage device,the functions and performance of the new type of storage device may beused. However, when data has been completely transferred, the old typeof storage device is wasted, and the old type of storage device cannotbe used effectively.

SUMMARY OF THE INVENTION

With the foregoing in view, it is an object of the present invention toprovide a storage system and a method of storage system path control tolink together a plurality of storage devices to enable effective use ofstorage resources, and improved ease of use and reliability. A furtherobject of the present invention is to provide a storage system and amethod of storage system path control to connect a plurality of storagedevices via a plurality of communications paths and enable switching ofthe communications path in response to the state of use of the storagesystem. Further purposes of the present invention will be apparent fromthe embodiments disclosed below.

The storage system to resolve these problems in accordance with thepresent invention has a first storage device having a virtual volumeused by the host, a second storage device having an actual volumeassociated with the virtual volume and connected to the first storagedevice via a plurality of communications paths, a mapping managementsection connecting the virtual volume and actual volume by a pluralityof communications paths and mapping the actual volume as the datastorage destination volume of the virtual volume, and a control sectionprocessing access requests from the host to the virtual volume based onmapping information between the virtual volume and actual volume managedby this mapping management section. The control section selects at leastone of the communications paths for processing of access requests.

Here, the first storage device may, for example, be configured as adevice having onboard storage resources such as a disk array subsystem.However, the first storage device is not limited to this configuration,and, for example, can also be configured as an intelligent fiber channelswitch and the like. The first storage device may be configured as adevice without physical storage resources for provision of a storageservice to the host. The first storage device need have no physicalvolume storing actual data, and need only be able to establish a virtualvolume.

The virtual volume and actual volume are connected via a plurality ofcommunications paths, the actual volume being employed as the datastorage destination volume of the virtual volume. In other words, whenthe host writes data to the virtual volume, this write data is sent tothe second storage device and written to the actual volume. Furthermore,when the host reads data from the virtual volume, this read data is readfrom the actual volume of the second storage device, and provided to thehost. The first storage device can therefore comprise a memory fortemporary or permanent storage of data. When the read data requestedfrom the host is stored in this memory, the first storage device doesnot necessarily require read data to be acquired from the second storagedevice.

In an embodiment of the present invention, the priority of eachcommunications path is preset. Based on priority, the control sectionselects at least one of the usable communications paths as usable. Forexample, of the plurality of usable communications paths, the controlsection uses the communications path with the highest priority to accessthe actual volume.

In an embodiment of the present invention, the control section also hasa failure detector to detect whether or not a failure has occurred inany of the communications paths. When the failure detector detectsoccurrence of a failure in a communications path in use, at least one ofthe usable communications paths is selected and used. In other words,when any form of failure is detected in a communications path in use,the control section can select a communications path having a highpriority from the plurality of normal communications paths. However,selection is not limited to this, and any one of the normalcommunications paths, or a plurality of communications paths, can beselected as desired. Thus, when a failure occurs in communications pathin use and the communications path is no longer usable, the controlsection can use another communications path to access the actual volume,and processing of access requests from the host is not interrupted.Furthermore, recovery from a failure can be conducted while processingaccess requests from the host.

In an embodiment of the present invention, mapping information managedby the mapping management section is associated with at least virtualvolume identification information for identification of the virtualvolume, actual volume identification information for identification ofthe actual volume, information on each path to access the actual volumefrom the virtual volume using the communications paths, stateinformation to indicate whether each communications path is in a usableor unusable state, and priority information indicating the priority ofeach communications path.

Information for each path may be formed by associating first portinformation for identification of each of the plurality of first portsof the first storage device, second port information for identificationof each of the plurality of second ports of the second storage device,and logical unit numbers (LUN) associated with each of the second ports.

A management device connected to the first storage device can be furtherprovided, and configured to allow update of all or part of the mappinginformation.

Furthermore, the management device may be configured so that all or partof the mapping information may be updated for each of at least onecommunications path connected to a preset prescribed connection point.Here, the prescribed connection point can be, for example, a nodeincluded within a communications path as in a communications port andthe like.

For example, this management device may be configured so that all orpart of the mapping information may be updated for each of at least onecommunications path connected to a first port, a second port, or anactual volume. In other words, the communications path configuration maybe managed in units of first ports, second ports, or actual volumes.Here, a first port unit implies, for example, that mapping informationmay be updated for all or part of the communications paths connected toeach first port. Similarly, a second port unit implies, for example,that mapping information may be updated for all or some of thecommunications paths connected to each second port. Similarly, an actualvolume unit implies, for example, that mapping information may beupdated for all or some of the communications paths connected to theactual volume. If a given group of actual volumes and virtual volumes isconsidered, one end of each communications path is connected to anactual volume, and the other end of each communications path isconnected to a virtual volume. The configuration wherein communicationspath configuration may be managed by actual volume unit is thereforeequivalent to a configuration wherein communications path configurationmay be managed by virtual volume.

Thus, by establishing a configuration wherein the configuration of eachcommunications path may be managed with the prescribed unit, efficiencyof maintenance work may be improved. For example, when a failure occurs,or with work such as planned replacement of components, it is possibleto disconnect (logical disconnect) only the communications path on whichthe failure has occurred, or replacement is planned. Except in casessuch as all communications paths being unusable, processing of accessrequests from the host is not interrupted.

The management device can update state information including at leastmapping information, and when halting the first storage device, thesecond storage device, or both, in a planned manner, the state of theprescribed communications paths relating to this planned halt can bechanged from usable to unusable, and when the planned halt is complete,the state of the prescribed communications paths may be changed again tousable.

The control section is further comprised of a failure detector to detectwhether or not a failure has occurred in each communications path. Whena failure is detected in any of the communications paths, the failuredetector may be configured to ignore a failure occurring in acommunications path in which the state is set to unusable. Thus, forexample, when conducting maintenance work on the second storage device,detected failures can be ignored by presetting the state of the eachcommunications path subject to maintenance work to unusable. A situationwherein failures detected due to planned maintenance work on the secondstorage device are notified to an external maintenance management centercan therefore be prevented before the event.

Even when the management device changes the state of the communicationspath to unusable, the priority can be fixed.

In an embodiment of the present invention, the control section can alsoprocess access requests while switching each communications path insequence. In other words, the control section can access the actualvolume using a different communications path for each access request.Thus, processing is possible at a higher speed than when access requestsare processed using a single communications path.

The control section has the first mode for processing access requestsusing one of the communications paths, and the second mode forprocessing access requests while switching between communications pathsin sequence.

When a third storage device having another actual volume associated withanother virtual volume of the first storage device, and connected to thefirst storage device via a plurality of other communications paths, thecontrol section can also apply the first mode or second mode in units ofstorage devices. In other words, for example, the control section canaccess the actual volume of the second storage device in the first mode,and can access the actual volume of the third storage device in thesecond mode. For example, as in the case of use of the second mode witha virtual volume for which high-speed processing is requested, theaccess mode can therefore be changed in response the form of use of thevirtual volume.

A storage system path control method according to a different point ofview of the present invention includes a first step wherein an virtualvolume of the first storage device and an actual volume of the secondstorage device are connected via a plurality of communications paths,and mapping information indicating the association between the virtualvolume and the actual volume is managed, a second step wherein accessrequests from the host to the virtual volume are processed based onmapping information and using one of the communications paths, a thirdstep wherein the occurrence or not of a failure in the communicationspaths is detected, a fourth step wherein at least one usablecommunications path is selected, and a fifth step wherein accessrequests from the host are processed using the selected communicationspath.

In the fourth step, of the usable communications paths, onecommunications path for which the highest priority is set can also beselected.

A sixth step wherein all or part of the mapping information can beupdated for each of the one or more communications paths connected tothe preset prescribed connection point can also be added.

The means, functions, and all or some of the steps, may be configured asa computer program executed by a computer system in some cases. When allor part of the configuration of the present invention is configured froma computer program, this computer program can be, for example, retainedon various types of storage media and distributed and the like, and canalso be sent via communications networks.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the overall configuration of thestorage system according to an implementation of the present invention;

FIG. 2 is a block diagram of the storage system;

FIG. 3 is schematic diagram describing the storage structure of storagesystem;

FIG. 4 is a diagram showing an outline of the functional configurationof the storage system;

FIG. 5 shows an example of the configuration of the external deviceinformation table;

FIG. 6 shows address conversion when data is written to an externalvolume incorporated as a virtual volume;

FIG. 7 shows an outline of writing data to an external storage deviceused as a virtual volume;

FIG. 8 shows an outline of reading data from an external storage deviceused as a virtual volume;

FIG. 9 is a flowchart showing the processing to acquire second storagedevice information;

FIG. 10 is a flowchart showing path setup processing;

FIG. 11 is a flowchart showing update processing of connectioninformation for an external path;

FIG. 12 is a sequence flowchart showing overall operation when a writecommand is processed;

FIG. 13 shows the WWN information management table according to thesecond embodiment;

FIG. 14 is a flowchart showing processing of a write command in themulti-path mode;

FIG. 15 is a schematic diagram of a storage system operated in themulti-path mode;

FIG. 16 is a flowchart showing processing for changing pathconfiguration by prescribed unit according to the third embodiment;

FIG. 17 is a screen example showing changing of path configuration inexternal connection port units;

FIG. 18 is a screen example showing changing of path configuration inexternal port units;

FIG. 19 is a screen example showing changing of path configuration inexternal volume units;

FIG. 20 is a flowchart showing a procedure for external storagemaintenance work according to the fourth embodiment;

FIG. 21 is a flowchart showing failure monitoring processing; and

FIG. 22 is a schematic diagram showing the storage system according tothe fifth embodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 shows the overall configuration of an embodiment of the presentinvention. In the present embodiment, by mapping a storage deviceexisting externally to its own virtual intermediate storage device, theexternal storage device is handled as if it were its own internalvolume, and is provided to the host.

The storage system of the present embodiment can be, for example,comprised of a first storage device 1, a second storage device 2, aswitch 3, a host 4, and a management terminal 5 as a management device.

The first storage device 1 is, for example, configured as a disk arraydevice. The first storage device 1 has a plurality of communicationsports (hereafter referred to as ‘ports’) P0, and EP1 through EP3. Theport P0 is used for communications with the host 4. The ports EP1through EP3 are external connection ports used for communication withthe second storage device 2. These ports P0 and EP1 through EP3 areconnected to the virtual volume 1A.

The storage system can be, for example, configured as a storage systemwherein data communication is conducted based on the Fiber ChannelProtocol as with Storage Area Networks (SAN) and the like. Themanagement terminal 5 and the first storage device 1 may, for example,be connected to a network for data communications based on TCP/IP(Transmission Control Protocol/Internet Protocol) as with a LAN (LocalArea Network) or WAN (Wide Area Network). The afore-mentioned isprovided as an example, and the present invention is not limited to anyparticular type of protocol.

The first storage device 1 can be comprised of a virtual volume 1A and acontrol section 1B. The virtual volume 1A exists only virtually, and theentity wherein data is actually stored exists on the second storagedevice 2.

In other words, the virtual volume 1A is constructed by mapping theactual volume 2A of the second storage device 2 onto a prescribedstorage layer of the first storage device 1. This virtual volume 1A isconnected to the actual volume 2A of the second storage device 2 via theexternal connection ports EP1 through EP3. Furthermore, the virtualvolume 1A is connected to port 4 via port P0.

The control section 1B controls overall operation of the first storagedevice 1. The control section 1B holds the mapping information 1C, andcontrols data input and output and the like based on this mappinginformation 1C.

The mapping information 1C can include, for example, virtual volumeidentification information for identification of the virtual volume 1A,actual volume identification information for identification of theactual volume 2A, information on each path to access the actual volume2A from the virtual volume 1A using each communications path (hereafterreferred to as ‘paths’), state information to indicate whether or noteach communications path is in a usable condition, and priorityinformation indicating the priority state of each communications path.

The mapping information 1C may be updated by an instruction from themanagement terminal 5. In other words, the management terminal 5 candefine the mapping relationship between the virtual volume 1A and actualvolume 2A.

When an access request for the virtual volume 1A is received from thehost 4 via the port P0, the control section 1B accesses the actualvolume 2A of the second storage device 2 based on the mappinginformation 1C.

For example, in the case of a write request, the control section 1Btransfers write data received from the host 4 to the second storagedevice 2 via the prescribed port of ports EP1 through EP3 and stores iton the actual volume 2A. Furthermore, for example, in the case of a readrequest, the control section 1B accesses the second storage device 2 viathe prescribed port of ports EP1 through EP3, and reads the datarequested from the host 4 from the actual volume 2A. It thereforeappears that the virtual volume 1A is accessed directly from the host 4,however, the actual destination volume for data storage is the actualvolume 2A of the second storage device 2.

As with the first storage device 1, the second storage device 2 iscomprised of, for example, a disk array device. The second storagedevice 2 is connected to the first storage device 1 via a plurality ofpaths.

The second storage device 2 can be comprised of, for example, an actualvolume 2A, a plurality of external LU2B units each associated with theactual volume 2A, and ports P1 through P3 each associated with each ofthese external LU2B units. Here, since the host 4 storage service isprovided by the first storage device 1, the first storage device 1 formsmain storage. The second storage device 2 is external storage externalto the first storage device 1. Here, the LU within the second storagedevice 2 is therefore referred to as an ‘external LU’ from the point ofview of the first storage device 1.

The actual volume 2A is provided based on the physical memory deviceprovided within the second storage device 2. As described above, theactual volume 2A is mapped onto the virtual volume 1A of the firststorage device 1, and provided as a logical volume entity to the virtualvolume 1A.

The paths provided between the first storage device 1 and the secondstorage device 2 are each connected to the actual volume 2A. In otherwords, the actual volume 2A may be accessed via any of the ports P1through P3.

The switch 3 is a relay device connecting the first storage device 1 andthe second storage device 2. The switch 3 can be, for example,configured as a fabric type switch. The switch 3 is comprised of aplurality of single-side ports and other-side ports. Each single-sideport and each other-side port may be freely connected. In the exampleshown in the figure, therefore, nine routes can be formed with theswitch 3.

Here, three paths have been established to assist in understanding ofthe invention. The first path connects the port EP1 of the first storagedevice 1 and the port P1 of the second storage device 2 in a linearmanner. This path is shown by the thick line in FIG. 1. The second pathconnects the port EP2 and the port P2 in a linear manner, and is shownby the dashed line. The third path connects the port EP3 and the port P3in a linear manner. The single-end side of each path is connected to thevirtual volume 1A, and the other-end side is connected to the actualvolume 2A. The control section 1B can access the actual volume 2Airrespective of which path is used.

Next, operation of the storage system is described below in outline.Firstly, a user such as the system manager and the like accesses thefirst storage device 1 via the management terminal 5, and sets up themapping information 1C (S1). By creating mapping information 1C, thevirtual volume 1A is created in the first storage device 1, and theports P0 and EP1 through EP3 can be allocated to the virtual volume 1A.Furthermore, the actual volume 2A can be mapped onto the virtual volume1A.

Here, the control section 1B initially uses the second path (EP2-P2) toaccess the actual volume 2A (S2). When a failure occurs in the secondpath while in use (S3), the control section 1B detects the occurrence ofthis failure. Examples of failures are a fault in port EP2 or port P2,and a break in the fiber cable, and the like.

When the control section 1B detects a failure in the second path, itswitches from the second path to the first path (EP1-P1) (S4), and thusthe access requests from the host 4 are continued using the first path(S5).

Here, since the priority set for the first path is higher than thepriority set for the third path (EP3-P3), the first path is selected. Ifthe priority of the third path is higher than that of the first path,the third path is selected.

Thus, according to the present embodiment, the first storage device 1can incorporate and use the actual volume 2A of the second storagedevice 2 as its own virtual volume 1A.

According to the present embodiment, the first storage device 1 and thesecond storage device 2 are connected by a plurality of paths, and anypath can be used to access the actual volume 2A. When a failure isdetected in a path in use, therefore, another normal path is switchedin, and processing of access requests from the host 4 can continuewithout interruption, and thus resistance to failure and reliability areimproved. Fault recovery work can be conducted while the path isswitched out and operation continues.

Furthermore, according to the present embodiment, since a plurality ofpaths can be used, for example, when conducting planned maintenance suchas port replacement and the like, maintenance work can be conductedwithout halting the storage system. Ease of use is therefore improved.The present embodiment is described below in greater detail.

First Embodiment

FIG. 2 is a block diagram showing the configuration of the primarycomponents of the storage system. As described below, this storagesystem can be, for example, configured to include a host 10, amanagement terminal 20, a management center 30, a plurality of storagedevices 100 and 200, and a switch 300 connecting storage devices 100 and200.

The host 10 and first storage device 100 are connected via thecommunications network CN1. The first storage device 100 and the secondstorage device 200 are connected via a plurality of communicationsnetworks CN2.

The first storage device 100 and the management terminal 20 areconnected via the communications network CN3. Furthermore, the firststorage device 100 and the management center 30 are connected via thecommunications network CN4.

The host 10 is a computer device comprising information processingresources such as a CPU (Central Processing Unit) and a memory and thelike, and is configured as a personal computer, a work station, or amainframe computer and the like.

The host 10 is comprised of an HBA (Host Bus Adapter) 11 for accessingthe first storage device 100 via the communications network CN1, and forexample, an application program 12 such as database software and thelike.

The communications network CN1 can be, for example, a LAN (Local AreaNetwork), a SAN (Storage Area Network), the Internet, a dedicated line,or a public line and the like as appropriate. Data communications via aLAN is conducted in accordance with, for example, the TCP/IP protocol.When the host 10 is connected to the first storage device 100 via a LAN,the host 10 specifies the file name and requests input and output ofdata in units of files.

When the host 10 is connected to the first storage device 100 via a SAN,the host 10 requests input and output of data in blocks being datamanagement units for the memory area provided by a plurality of diskdrives in accordance with the Fiber Channel Protocol. When thecommunications network CN1 is a LAN, the HBA 11 is, for example, a LANcompatible network card. When the communications network CN1 is a SAN,the HBA 11 is, for example, a host bus adapter.

When the host 10 is configured as a mainframe computer, the host 10sends data in accordance with, communications protocols such as FICON(Fiber Connection (registered trademark)), ESCON (Enterprise SystemConnection (registered trademark)), ACONARC (Advanced ConnectionArchitecture (registered trademark)), or FIBARC (Fiber ConnectionArchitecture (registered trademark)) and the like.

The management terminal 20 is a computer device for management ofstorage system configurations and the like, and, for example, isoperated by a user such as a system manager and the like. The managementterminal 20 is connected to the first storage device 100 via thecommunications network CN3. The management terminal 20 can be, forexample, configured to comprise a LAN port 21 for connection to thecommunications network CN3, and a storage management section 22. Thestorage management section 22 is, for example, configured as software,and presents various instructions to the first storage device 100.Control information and tables and the like within the first storagedevice 100 can be rewritten with these instructions. Furthermore, themanagement terminal 20 acquires various information from the firststorage device 100, and can also display it on the terminal screen.

The management center 30 is connected to the first storage device 100via the communications network CN4. The management center 30 is acomputer device for management of storage system maintenance. Themanagement center 30 receives notification of failures from the firststorage device 100, and, for example, communicates this fact tomaintenance personnel and the like.

The first storage device 100 is, for example, configured as a disk arraysubsystem. However, the first storage device 100 is not limited to thisconfiguration, and may also be configured as a high-performanceintelligent fiber channel switch.

As described below, the first storage device 100 provides the host 10with the memory resources of the second storage device 200 as its ownlogical volume (Logical Unit: labeled as ‘LDEV’ in figures). The firststorage device 100 is main storage in the storage system, and provides astorage service to the host 10. On the other hand, the second storagedevice 200 is external storage used by the first storage device 100being main storage.

The first storage device 100 can be generally classified into acontroller and memory section 160, the controller comprising, forexample, a plurality of channel adapters (hereafter referred to as‘CHA’) 110, a plurality of disk adapters (hereafter referred to as‘DKA’) 120, a cache memory 130, a shared memory 140, and a connectioncontrol section 150. The controller is labeled as ‘controller 101’ inFIG. 4 described below.

Each CHA 110 conducts data communications with the host 10. Each CHA 110has a plurality of ports 111 for communication with the host 10. Asdescribed below, each port 111 can be, for example, classified as aninitiator port, a target port, or an external connection port (Externalport). An initiator port is a port issuing commands as a host. A targetport is a port receiving and processing commands. An external connectionport is a type of initiator port, and is used for connection to thesecond storage device 200.

Each CHA 110 is configured as a microcomputer system comprising a CPUand memory and the like, and interprets and executes various commandsreceived from the host 10. A network address (for example, an IPaddress, or WWN) is allocated to each CHA 110 for identification, andeach CHA 110 may individually behave as NAS (Network Attached Storage).When a plurality of hosts 10 exist, each CHA 110 individually receivesand processes requests from each host 10.

Each DKA 120 transfers data to the disk drives 161 of the memory section160. As with each CHA 110, each DKA 120 is configured as a microcomputersystem comprising a CPU and memory and the like. Each DKA 120, forexample, writes data received from the host 10 by the CHA 110, and dataread from the second storage device 200, to the prescribed address onthe prescribed disk drive 161.

Furthermore, each DKA 120 reads data from the prescribed address on theprescribed disk drive 161, and sends it to the host 10 or second storagedevice 200. When data is input and output to and from a disk drive 161,the logical address of each DKA 120 is converted to a physical address.When the disk drive 161 is managed as a RAID, each DKA 120 accesses datain response to the RAID configuration. For example, each DKA 120 writesthe same data to separate disk drive groups (RAID groups), or computesparity and writes data and parity to the disk drive groups.

The cache memory 130 stores data received from the host 10 or the secondstorage device 200, or stores data read from the disk drives 161. Asdescribed below, a virtual intermediate memory device is constructedusing the memory space of the cache memory 130.

Various control information used in control of operation of the firststorage device 100, and configuration information Tc and the like, isstored in shared memory (also referred to as control memory) 140. Thisconfiguration information Tc includes the tables T1 through T3 and thelike described below. The management terminal 20 can rewrite all or partof the configuration information Tc in shared memory 140.

One or more of the disk drives 161 may be used as a cache disk.Furthermore, the cache memory 130 and shared memory 140 can also beconfigured as separate memories, and part of the same memory area canalso be used as a cache area, and another memory area used as a controlarea.

The connection control section 150 mutually connects each CHA 110, eachDKA 120, cache memory 130, and shared memory 140. The connection controlsection 150, can be, for example, configured as a high-speed bus such asan ultra high-speed crossbar switch and the like transmitting data byhigh-speed switching operation.

The memory section 160 is comprised of a plurality of disk drives 161. Avariety of memory devices and equivalent devices, for example, hard diskdrives, flexible disk drives, magnetic disk drives, semiconductor memorydrives, and optical disk drives and the like, can be used as disk drives161. Furthermore, different types of disks such as FC (Fiber Channel)disks and SATA (Serial AT Attachment) disks and the like can be mixed inthe memory section 160.

As described below, the virtual volume 163V based on the disk drives 220of the second storage device 200 is formed in the first storage device100. This virtual volume 163V is provided to the host 10 in a similarmanner to the internal volume 163 based on the disk drives 161.

The SVP (service processor) 170 is connected, for example, to each CHA110, via the internal communications network CN5. The SVP 170 can alsoaccess shared memory 140 and the like via one or more CHA 110. The SVP170 is connected to the management terminal 20 via the LAN port 180.Furthermore, the SVP 170 is also connected to the management center 30via, for example, a communications network CN4 such as a publictelephone line. The SVP 170 may collect various information in the firststorage device 100 and output it to the management terminal 20.Furthermore, the SVP 170 can rewrite configuration information Tc storedin shared memory 140, and change the configuration of the first storagedevice 100, in response to instructions from the management terminal 20.

The second storage device 200 can comprise, for example, a controller210 and a plurality of disk drives 220. The controller 210 controlsoverall operation of the second storage device 200. The second storagedevice 200 is connected to the first storage device 100 via a pluralityof ports 211. The second storage device 200 and the first storage device100 are connected via the communications network CN2. The communicationsnetwork CN2 may comprise a SAN or LAN and the like.

The second storage device 200 can also be configured similarly to thefirst storage device 100, and can also have a different configuration tothe first storage device 100. The disk drives 220 of the second storagedevice 200 are handled as internal memory devices of the first storagedevice 100.

The switch 300 is provided between the first storage device 100 and thesecond storage device 200. The switch 300 can be, for example,configured as a fiber channel switch. The switch 300 has a plurality ofports, and connection to each port may be freely switched. One of thegroup of ports of the switch 300 is connected to a plurality of externalconnection ports of the first storage device 100. The other group ofports of the switch 300 are connected to a plurality of target ports 211of the second storage device 200. The first storage device 100 and thesecond storage device 200 can be, for example, connected using up toeight paths.

FIG. 3 shows the configuration of the logical memory structure of thefirst storage device 100 and second storage device 200. Theconfiguration of the first storage device 100 is described first.

The memory structure of the first storage device 100 can be, forexample, generally classified into a physical memory layer and a logicalmemory layer. The physical memory layer is comprised of a PDEV (PhysicalDevice) 161 being a physical disk. The PDEV corresponds to a disk drive.

The logical memory layer can be comprised of a plurality of layers (forexample, two types). A logical layer may be comprised of a VDEV (VirtualDevice) 162, and a virtual VDEV (hereafter also referred to as ‘V-VOL’)162V handled as a VDEV 162. Another logical layer can be comprised of anLDEV (Logical Device) 163.

VDEV 162, is comprised of prescribed numbers of PDEV 161 in groups, forexample, four in one assembly (3D+1P), or eight in one assembly (7D+1P),and the like. The memory areas provided by each PDEV 161 belonging to agroup are aggregated to form a single RAID memory area. This RAID memoryarea forms a VDEV 162.

In contrast to the construction of the VDEV 162 on the physical memoryarea, the V-VOL 162V is a virtual intermediate memory device notdirectly requiring a physical memory area. The V-VOL 162V is notdirectly related to the physical memory area, but is a receiver formapping LU (Logical Units) of the second storage device 200.

At least one LDEV 163 can be provided on VDEV 162 or V-VOL 162V. TheLDEV is a logical volume. LDEV 163, can be, for example, configured bydividing VDEV 162 into fixed lengths. In FIG. 3, the LDEV established onV-VOL 162V is labeled ‘163V’. However, in cases where there is noparticular need to distinguish between the two, it is referred to asLDEV 163 irrespective of origin.

When the host 10 is an open system host, the host 10 recognizes LDEV 163as a single physical disk by mapping LDEV 163 onto LU164. The opensystem host accesses the desired LDEV 163 by specifying the LUN (LogicalUnit Number) and logical block address. In the case of a mainframesystem host, LDEV 163 is recognized directly.

LU 164 are devices able to be recognized as SCSI logical units. Each LU164 may be connected to the host 10 via the target port 111A. Each LU164 can be associated with at least one LDEV 163. By associating aplurality of LDEV 163 to one LU 164, the LU size can also be virtuallyexpanded.

The CMD (Command Device) 165 is a dedicated LU used to transfer commandsand states between the I/O control program running on the host 10 andthe first storage device 100 controller (CHA 110, DKA 120 and the like).For example, the host 10 can write commands to CMD 165. The firststorage device 100 controller runs processing in response to commandswritten to CMD 165, and writes the results of this processing to CMD 165as a state. The host 10 reads and verifies the state written to CMD 165,and writes the processing details to be executed next to CMD 165. Thus,the host 10 can present various instructions to the first storage device100 via CMD 165.

Commands received from the host 10 can also be processed without storagein CMD 165. Furthermore, the CMD may be created as a virtual devicewithout defining the entity device (LU), and configured to receive andprocess commands from the host 10. In other words, for example, CHA 110writes commands received from the host 10 to shared memory 140, and CHA110 or DKA 120 process commands stored in this shared memory 140. Theresults of the processing are written to shared memory 140, and sentfrom CHA 110 to the host 10.

The first storage device 100 is provided with a plurality (for example,eight) of external connection ports (External ports) 111B. Theseexternal ports 111B are connected to the ports 211 of the second storagedevice 200 via the communications network CN2. Furthermore, eachexternal port 111B is also connected to V-VOL 162V. V-VOL 162V isconnected to the second storage device 200 via a plurality of paths.

The second storage device 200, can comprise, for example, VDEV 230established on the memory area provided for each PDEV 220, and at leastone LDEV 240 able to be established on VDEV 230. Each LDEV 240 isassociated with an LU 250. Furthermore, each LU 250 corresponds to eachtarget port 211.

Each LU 250 of the second storage device 200 is connected to a commonLDEV 240. Furthermore, each LU 250 is connected to each external port111B via each communications network CN2 from each port 211. Asdescribed above, each external port 111B is connected to a common V-VOL162V.

The LDEV 240 of the second storage device 200 is therefore associatedwith V-VOL 162V via a plurality of paths. Thus, the LDEV 240 within thesecond storage device 200 can be used as a memory resource of the firststorage device 100 from a plurality of paths. One assembly of V-VOL 162Vand LDEV 240 are shown in FIG. 3, however, other V-VOL 162V and LDEV 240assemblies can also be provided.

The RAID configuration can be applied to VDEV 162 and V-VOL 162V. Inother words, one disk drive can also be allocated to a plurality of VDEV162 and V-VOL 162V (slicing), and one VDEV 162 and one V-VOL 162V canalso be formed from a plurality of disk drives.

‘LDEV 2’ or ‘LDEV 3’ of the first storage device 100 are equivalent toan actual interior volume, and ‘LDEV 1’ corresponds to a virtual volume.The ‘LDEV’ of the second storage device 200 corresponds to an actualvolume. When considered from the first storage device 100, the secondstorage device 200 becomes external storage, and the logical volume 240of the second storage device 200 becomes an external volume.Furthermore, when considered from the first storage device 100, eachport 211 of the second storage device 200 becomes an external port, andthe port 111B of the first storage device 100 becomes an internal port.

FIG. 4 shows the configuration of functions of the present embodiment.The controller 101 of the first storage device 100 is comprised of eachCHA 110 and each DKA 120, the cache memory 130, and the shared memory140 and the like.

This controller 101 stores configuration information including theexternal device information table T1 described below in the sharedmemory 140. The virtual volume 163V is provided in the first storagedevice 100. The first storage device 100 can also have the internalvolumes ‘LDEV 2’ and ‘LDEV 3’ shown in FIG. 3, however since this is notone of the essential points of the present invention, it is omitted fromthe following description.

The virtual volume 163V (LDEV 1) established in V-VOL 162V is allocatedto LU 164, and provided for access from the host 10. The host 10 issuesinstructions to write data to and read data from the virtual volume163V.

Furthermore, as described above, V-VOL 162V is connected to each of theexternal ports 111B, and connected to the actual volume 240 (LDEV) ofthe second storage device 200 via a plurality of paths.

The second storage device 200 has an actual volume 240. The actualvolume 240 is created based on the memory area of the disk drives 220.The actual volume 240 is connected to the V-VOL 162V of the firststorage device 100 via a plurality of paths.

The switch 300 is positioned between the first storage device 100 andthe second storage device 200, and connects the first storage device 100and the second storage device 200. The switch 300 has a plurality ofsingle-side ports 311, 312, and 313, and a plurality of other-side ports321, 322, and 323. Each single-side port 311 through 313 is connected tothe external port 111B (EP1 through EP3) of the first storage device100. Each other-side port 321 through 323 is connected to the targetport 211 (TP1 through TP3) of the second storage device 200.

In FIG. 4, three paths are shown as one example. The first path beginswith V-VOL 162V, continues to port EP1, port 311, port 321, and port TP1in that order, and reaches LDEV 240. Similarly, the second path beginswith V-VOL 162V, continues to port EP2, port 312, port 322, and port TP2in that order, and reaches LDEV 240. Similarly, the third path beginswith V-VOL 162V, continues to port EP3, port 313, port 323, and port TP3in that order, and reaches LDEV 240. The number of paths is not limitedto three.

The storage management section 22 of the management terminal 20 managespath configuration. The storage management section 22, for example,rewrites the content of the external device information table T1 bysending the prescribed command to the first storage device 100, andestablishes and deletes paths and the like.

FIG. 5 shows an example of the external device information table T1 formapping the actual volume 240 of the second storage device 200 onto thevirtual volume 163V of the first storage device 100. The external deviceinformation table T1 corresponds to an example of ‘mapping information’or a ‘mapping table’.

The external device information table T1 can be comprised byassociating, for example, a ‘VDEV number’ to identify the V-VOL 162V, a‘valid path flag’ showing which path is valid (abbreviated as ‘validpath’ in the figure), information to identify external devices, and anexternal connection path information table.

The valid path flag is information indicating whether or not any of thepaths between the V-VOL 162V and the actual volume 240 are valid. Pathsfor which the flag is set to ‘1’ are valid, and paths for which the flagis reset to ‘0’ are invalid, however a path is not necessarily usableeven if valid. As described below, a valid path is in either the‘Normal’ or ‘Disconnect’ state. A path in the ‘Disconnect’ state existsas a valid path, however it cannot be used.

Information for identification of external devices may be, for example,chassis information, device identification information, actual volume240 memory capacity, and device type information indicating actualvolume 240 type.

Chassis information is information for identification of the secondstorage device 200, and includes, for example, vendor name, productname, and serial number and the like. Device identification informationis information for identification of the actual volume 240. Device typeinformation indicates, for example, whether a device is a tape-systemdevice, or a disk-system device.

The V-VOL 162V being the path start point, and the actual volume 240being the path end point, can be specified with the afore-mentioned VDEVnumber and device identification information. The practicalconfiguration for the plurality of paths between the volumes 162V and240 is indicated in the external connection path information.

The external connection path information table can be configured byassociating, for example, a number for each path (path number),information for identification of external ports (the port number andWWN and the like), the WWN for identification of ports (external ports)211 of the second storage device 200, LUN numbers for identification ofLUN of the second storage device 200, path state, and path priority.

Path state can be either ‘Normal’ or ‘Disconnect’. Paths in the Normalstate can be used for access to the actual volume 240. Paths in theDisconnect state are logically disconnected, and cannot be used foraccess to the actual volume 240.

Priority is information indicating the order of use of each path. Here,the number becomes smaller as priority increases. Each path has adifferent priority. If, for example, a path currently in use becomesunusable due to a failure and the like, priority is used as informationfor selection of a alternate path.

By incorporating the external connection path investigation table in theexternal connection path information table T1 as shown in FIG. 5, thecontroller 101 can specify a path to access the actual volume 240 bysimply referencing this table T1. The external connection pathinformation table can be disconnected from the external deviceinformation table T1, and both tables configured as different tables.

FIG. 6 shows conversion of data using various tables. As shown at thetop of FIG. 6, the host 10 specifies the LUN number (LUN #) and logicalblock address (LBA) for the prescribed target 111A, and sends data.

The first storage device 100 converts data (LUN #+LBA) input from thehost 10 to VDEV data based on the conversion table T2 shown in FIG. 6(a). This conversion table T2 is a LUN-LDEV-VDEV conversion table forconversion of data specifying LUN within the first storage device 100 toVDEV data.

This conversion table T2 is configured by associating, for example, theLUN number (LUN #), the LDEV number (LDEV #) associated with this LUN,and the maximum number of slots, with the VDEV (including V-VOL) number(VDEV #) associated with LDEV, and the maximum number of slots, and thelike. By referencing this conversion table T2, the data (LUN #+LBA) fromthe host 10 is converted to VDEV data (VDEV #+SLOT #+SUBBLOCK #).

Next, the first storage device 100 references the external deviceinformation table T1 as shown in FIG. 6 (b). Thus, the first storagedevice 100 converts VDEV data to data sent to and stored in the secondstorage device 200 for LUN use. For reasons of convenience ofdescription, the configuration of the external device information tableT1 shown in FIG. 5 is partially shown in FIG. 6 (b).

For example, the VDEV number (VDEV #), the valid path flag, the numberof the external port for sending data from VDEV to the second storagedevice 200, the WWN to specify the second storage device 200, a LUN ableto be accessed via the port, and path state and priority, are associatedin the external device information table T1.

Based on this external device information table T1, the first storagedevice 100 converts write data address information into external portnumber #+WWN+LUN #+LBA format. Data for which this address informationis changed reaches the other port 211 from the specified external port111B via the communications network CN2. The data is then stored in theprescribed location in LDEV 240.

When the access Y/N attribute is set for the virtual volume 163V, theaccess attribute management table is stored in shared memory 140.Details are omitted, however the access attribute can be, for example,‘Read/write enabled’, ‘Write protected (read only)’, ‘Read/writedisabled’, ‘Free space 0’, ‘Cannot set copy destination’, or ‘Hidden’.

-   -   ‘Read/write enabled’ indicates a state wherein reading from and        writing to a volume is possible. ‘Write protected’ indicates a        state wherein writing to a volume is prohibited, and reading        from the volume is permitted. ‘Read/write disabled’ indicates a        state wherein reading from and writing to a volume is        prohibited. ‘Free space 0’ indicates a state wherein a response        indicating zero space remaining (full) is returned for an        inquiry on volume space remaining, even if free space is        available in practice. ‘Cannot set copy destination’ indicates a        state wherein a volume cannot be set as a copy destination        volume (secondary volume). ‘Hidden’ indicates a state wherein        recognition from an initiator is not possible.

Data input and output between the first storage device 100 and thesecond storage device 200 is described below based on FIG. 7 and FIG. 8.FIG. 7 is a schematic diagram showing processing when data is written.The host 10 can write data to the logical volume (LDEV) 163V havingaccess privileges. For example, the host 10 can be set so that itaccesses only a specific LDEV by zoning wherein a virtual SAN subnet isestablished in a SAN, and a method of LUN masking wherein through-holehost 10 holds an accessible LUN list.

When the volume 163V to which the host 10 attempts to write data isconnected to the external volume 240 via the V-VOL 162V, data flow is asshown in FIG. 7. FIG. 7 (a) shows flow in relation to the memory layer,and FIG. 7 (b) shows flow in relation to the method with which the cachememory 130 is used.

The host 10 declares the LDEV number specifying the volume 163V to whichdata is written, and the WWN specifying the port 111A for accessing thisvolume 163V, and issues the write command (Write) (S21). When the firststorage device 100 receives the write command from the host 10, a writecommand for sending data to the second storage device 200 is created andsent to the second storage device 200 (S22). The first storage device100 changes address information and the like in the write commandreceived from the host in accordance with the external volume 240 tocreate a new write command.

The host 10 sends write data to the first storage device 200 (S23).Write data received by the first storage device 100 is transferred fromthe volume 163V via V-VOL 162V (S24) to the second storage device 200(S26). Here, the first storage device 100 returns a write completeresponse (Good) (S25) to the host 10 immediately the data from the host10 is stored in the cache memory 130.

Immediately the second storage device 200 receives write data from thefirst storage device 100 (or immediately write to the disk drive 220 iscomplete), a write complete report is sent to the first storage device100 (S26). In other words, the time at which the first storage device100 reports write complete to the host 10 (S25), and the time at whichdata is actually stored on the disk drive 220, differ (asynchronousmethod). Prior to write data being actually stored on the disk drive220, therefore, the host 10 is released from data write processing, andother processing can be conducted.

FIG. 7 (b) shows a plurality of subblocks in the cache memory 130. Thefirst storage device 100 converts logical block addresses specified fromthe host 10 into subblock addresses, and stores data in the prescribedlocation in the cache memory 130 (S24). In other words, V-VOL 162V andVDEV 162 each exist logically in the cache memory 130 memory space.

FIG. 8 shows the flow when data is read from the external volume 240 ofthe second storage device 200. Firstly, when the host 10 specifies theport 111A and sends a data read command (Read) to the first storagedevice (S31). When the first storage device 100 receives the readcommand, it creates a new read volume from which the requested data isto be read from the second storage device 200

The first storage device 100 then sends the created read command to thesecond storage device 200 (S32). The second storage device 200 reads therequested data from the disk drive 220 in response to the read commandreceived from the first storage device 100. The second storage device200 sends this read data to the first storage device 100 (S33), andreports completion of normal read (S35). As shown in FIG. 8 (b), thefirst storage device 100 stores data received from the second storagedevice 200 in the prescribed location in the cache memory 130 (S34).

The first storage device 100 reads the data stored in the cache memory130, converts addresses, sends data to the host 10 via LUN 164 (S36),and reports completion of read (S37). Conversion operation during thissequence of processing when data is read is the reverse of thatdescribed with FIG. 6.

FIG. 8 shows data read from the second storage device 200 in response toa request from the host 10 as being held in the cache memory 130,however it is not limited to this, and all or part of the data stored inthe volume 240 of the second storage device 200 can be previously storedin the cache memory 130. In this case, data can be read from the cachememory 130 and sent to the host 10 immediately in response to a readcommand from the host 10.

FIG. 9 is a flowchart showing an outline of processing to acquireconfiguration information for the second storage device 200. Firstly,the first storage device 100 logs in to the second storage device 200via the CHA 110 external port 111B (S41). Login is completed when thesecond storage device 200 returns a response to the first storage device100 login (S42). Next, the first storage device 100 sends, for example,an inquiry command as determined under the SCSI (Small Computer SystemInterface) standard to the second storage device 200 requesting detailedinformation on the volume 240 of the second storage device 200 (S43).

The inquiry command is used to clarify the type and configuration of thedevice being the subject of the inquiry, and is able to permeate thelayers of the device subject to inquiry (second storage device 200), anddetermine its physical structure. By using the inquiry command, thefirst storage device 100 can, for example, acquire information such asthe device name, the device type, the manufacturing number (product ID),the LDEV number, the version information, and the header ID and the likefrom the second storage device 200 (S44). The second storage device 200sends the information being the subject of the inquiry to the firststorage device 100 and responds (S45).

The first storage device 100 registers the information acquired from thesecond storage device 200 in the prescribed location in the externaldevice information table T1 (S46). The first storage device 100 readsthe storage capacity of the volume 240 from the second storage device200 (S47). The second storage device 200 returns the storage capacity ofthe volume 240 (S48) in response to an inquiry from the first storagedevice 100, and returns a response (S49). The first storage device 100registers the storage capacity of the volume 240 in the prescribedlocation in the external device information table T1 (S50). The externaldevice information table T1 can be constructed with the afore-mentionedprocessing and the like.

FIG. 10 is a flowchart showing an outline of the processing to establisha path linking V-VOL 162V and the external volume 240. This processingcan be, for example, executed by the storage management section 22 ofthe management terminal 20.

The screen for path setup is displayed on the terminal screen of themanagement terminal 20. By using this screen, a user such as the systemmanager and the like can select to add or delete paths.

When adding paths (S61: YES), the user specifies the parameters of thepath to be added (S62). Parameters can be, for example, the VDEV number,the valid path flag, the external port number, the WWN, the external LUNnumber, and the priority.

When the parameters necessary for addition of a path are specified(S62), the management terminal 20 creates the command for addition of apath, and sends this command to the second storage device 200 via thecommunications network CN3 (S63).

An example of the command 401 in the case of adding a path is shown atthe bottom of FIG. 10. Values specified by the user are stored in theparameters of the add path command (Set Alternate Path). When the firststorage device 100 receives this command, a new path is added to theexternal device information table T1. Comparison with the externaldevice information table T1 shown in FIG. 5 shows that most of theinformation necessary to define the configuration of the new path isincluded in the command 401. In other words, the command 401 includesmost of a single-line array of the table T1. When the first storagedevice 100 receives the command 401, the information included in thecommand 401 therefore need only be registered in the table T1, and apath can be comparatively easily added.

On the other hand, when the user desires to delete a path (S61: NO, S64:YES), the user selects the path to be deleted (S65). The managementterminal 20 resets the bit in the valid path flag corresponding to theselected path to 0 (S66). The management terminal 20 creates the deletecommand 402, and sends this command 402 to the first storage device 100(S67).

As shown at the bottom of FIG. 10, the delete path command 402 isconfigured similarly to the add path command 401. However, in practice,the delete path command 402 parameters include, for example, only thevalid path flag and the VDEV number for the path to be deleted, andother parameters are set to a null state. For example, when deleting thethird path, a valid path flag having the third bit reset is created. Thefirst storage device 100 checks the state of the valid path flag, anddeletes the third path information from the external device informationtable T1.

FIG. 11 is a flowchart showing an outline of update processing forexternal connection paths. This processing can, for example, disconnecta path, or recover a disconnected path. This processing is also executedby the storage management section 22 of the management terminal 20.

The user can select disconnection of a path, or recovery of a path, onthe path update screen displayed on the terminal screen of themanagement terminal 20. When disconnecting a path (S71: YES), the userspecifies the parameters of the path to be disconnected (S72).Parameters can be, for example, the VDEV number, the external portnumber, the WWN, and the external LUN number and the like. Here,priority need not be specified. Priority is maintained unchanged when apath is logically disconnected. When the management terminal 20 acquiresthe parameters used for path disconnection, the disconnect path command411 is created, and sent to the first storage device 100 (S73).

The disconnect path command 411 can be, for example, configured toinclude information indicating the disconnect path instruction(Disconnect), and the VDEV number, the external port number, the WWN,the external LUN number, and the operation result. The operation resultfield stores the state returned from the first storage device 100. Inother words, as shown in the command 411A returned from the firststorage device 100, when logical disconnection of a path is completednormally, information indicating ‘Normal’ is stored in the operationresult field.

The disconnected path is no longer subject to periodic monitoring by thefirst storage device 100. Furthermore, the disconnected path cannot beused for sending of data. Even when a path is disconnected, its prioritydoes not change, however, it cannot be set as an alternate path, and theconnection state of a disconnected path prior to input and output istherefore also not checked.

On the other hand, when the user desires recovery of a path (S71: NO,S74: YES), the user inputs the parameters required to specify the pathto be recovered (S75). These parameters are similar to those describedin S72. The management terminal 20 creates the path recovery command412, and sends it to the first storage device 100 (S76).

Except for information indicating command type, the path recoverycommand (Check Paths) may be configured similarly to the disconnect pathcommand 411. When the first storage device 100 is successful in pathrecovery operation, the command 412A is returned from the first storagedevice 100 to the management terminal 20, and information indicating‘Normal’ is stored in the operation result field.

FIG. 12 is a sequence flowchart showing an outline of operation when afailure occurs while processing a write command.

The host 10 issues a write command to the first storage device 100 forwriting to the virtual volume 163V (S81). The first storage device 100stores write data received from the host 10 in the cache memory 130(S82). After storing write data in the cache memory 130, the firststorage device 100 immediately reports completion of processing to thehost 10 (S83).

Furthermore, the first storage device 100 references the external deviceinformation table T1 and creates a new command, and sends this newcommand to the second storage device 200 via the specified external port111B (S84). The specified external port 111B used in data communicationsis, for example, the port of the path having the highest priority of allpaths currently in use.

When the second storage device 200 receives write data from the firststorage device 100, it writes this data to the cache memory (S85) andissues a response to indicate completion of processing (S86). The secondstorage device 200 writes the cached write data to the prescribed diskdrive 220 with the appropriate timing, and destage the data (S87).

On the other hand, when the host 10 receives notification of completionof processing from the first storage device 100 (S83), the write commandand write data are sent again to the first storage device 100 (S88). Thefirst storage device 100 stores write data in the cache memory 130 inthe same manner as described above (S89), and reports completion ofprocessing to the host 10 (S90).

The first storage device 100 monitors whether or not a failure hasoccurred (S91). When a failure is detected (S91: YES), the first storagedevice 100 references the external device information table T1 (S92),and selects the path having the next highest priority of the pathscurrently in use (S93). In other words, the first storage device 100selects one of the paths having the highest priority of the usable pathsin place of the path in which the failure has occurred. The firststorage device 100 sends the write command to the second storage device200 in the same manner as described above (S94). The second storagedevice 200 stores the write data from the first storage device 100 inthe cache memory (S95), and reports completion of processing to thefirst storage device 100 (S96).

For reasons of convenience of description, monitoring of occurrence of afailure is shown following S90 in FIG. 12, however, in practice, failuredetection is executed as a process separate from processing of the writecommand.

As described in detail above, according to the present embodiment, bymapping the external volume 240 onto V-VOL 162V, the external volume 240can be handled as a logical volume 163V within the first storage device100. The storage resources of the second storage device 200 cantherefore be integrated with the first storage device 100 and usedeffectively.

In the present embodiment, the first storage device 100 and the secondstorage device 200 are connected by a plurality of paths, and when afailure occurs in a path currently in use, a configuration using aseparate path is adopted. Even when a fault occurs in a port, or a breakoccurs in a fiber cable and the like, an alternate path is selected, andthe access requirement from the host 10 can be processed. Thus, when afailure occurs, an access path to the external volume 240 can beconstantly available. Processing of access requests can therefore becontinued even when a failure occurs, failure recovery work can beconducted during this period, and reliability and resistance to failuresand the like can be improved.

In the present embodiment, priority is preset for each path, and pathshaving high priority are used first. When a failure occurs, an alternatepath can therefore be determined rapidly. Furthermore, if, for example,priority can be specified previously by the user, priority can be setfor each path in response to the storage system environment.

In the present embodiment, a configuration wherein a plurality of pathsare used, and access to the external volume 240 is possible, is adopted.When a failure occurs, and also when planned maintenance is conducted,benefits can therefore be demonstrated. In other words, when CHA 110 andfiber cables are replaced and the like, paths subject to thismaintenance work can be disconnected beforehand, and the path having thenext highest priority selected. Thus, maintenance work can be conductedwhile ensuring a path for the second storage device 200. The firststorage device 100 always selects a path based on priority so that apath is always available for access to the second storage device 200.

Second Embodiment

The second embodiment is described based on FIG. 13 through FIG. 15. Thefollowing embodiments, including the present embodiment, are equivalentto variations of the first embodiment. In the present embodiment, thefirst storage device 100 and the second storage device 200 are connectedby a plurality of paths, and access requests from the host 10 areprocessed while these paths are selected in sequence.

FIG. 13 shows an example of the WWN information management table T3. TheWWN information management table T3 is information for the management ofthe alternate path mode (use mode) of the second storage device 200being external storage.

The alternate path mode, can be, for example, the single path mode, orthe multi-path mode. The single path mode is a mode wherein one of aplurality of paths is selected for use as described in the firstembodiment. The multi-path mode is a mode wherein a plurality of pathsare selected in sequence for use as described below.

The alternate path mode, can be, for example, set in units of storagedevices. When the second storage device 200 is used in the single pathmode, as shown in FIG. 13, the single path mode is set in the WWN ofeach port 211 of the second storage device 200. When the second storagedevice 200 is used in the multi-path mode, the multi-path mode is set ineach WWN identifying each port 211.

The condition in which the alternate path mode is set for each of theplurality of storage devices is shown in FIG. 13. However, differenttypes of alternate path modes can be mixed within the same storagedevice in some cases.

Next, FIG. 14 is a flowchart showing an outline of processing of a writecommand in the multi-path mode. When the first storage device 100receives the write command and write data from the host 10 (S101: YES),it stores the write data in the cache memory 130 (S102), and reportscompletion of processing to the host 10 (S103).

The first storage device 100 monitors whether or not a failure hasoccurred (S104). When a failure is detected (S104: YES), the firststorage device 100 closes the external port 111B for the path in whichthe failure has been detected (S105). The first storage device 100 thenselects the next usable path (S106). When a failure is not detected(S104: NO), the first storage device 100 skips S105 and selects the nextpath (S106).

The first storage device 100 uses the selected path to send the writecommand to the second storage device 200 (S107), and waits fornotification of completion of processing (S108). When completion ofprocessing is reported from the second storage device 200 (S108: YES),this processing is completed. When the host 10 then issues the writecommand, steps S101 and later are repeated.

FIG. 15 is a schematic diagram showing the case in which operation inthe multi-path mode is used. By referencing the WWN informationmanagement table T3 and the external device information table T1, thefirst storage device 100 controller 101 accesses the second storagedevice 200 while selecting the plurality of paths P1 through P8 insequence. In other words, when a failure does not occur, a path isselected and used, for example, in the sequence P1, P2, P3, P4 . . . ,each time access processing is executed. Even when multiple access fromthe host 10 is requested, since the wait queue for the paths P1 throughP8 can be shortened, processing can be conducted at high-speed. On theother hand, when a failure is detected in any one of the paths, thatpath is closed and becomes unusable. In this case, the first storagedevice 100 accesses the second storage device 200 while selecting onlynormal paths in sequence.

Thus, in the present embodiment, access requests from the host 10 can beprocessed while selecting the plurality of paths connecting the firststorage device 100 and the second storage device 200. Processing cantherefore be at higher speed than with the first embodiment, andresponsiveness of the storage system can be improved.

Furthermore, even when a failure is detected in any of the paths, sinceoperation for all except that path is continued, resistance to failurescan be improved. Furthermore, while conducting maintenance work on anypath, another path can be selected and processing continued whileensuring high-speed responsiveness, and improving reliability and easeof maintenance.

Third Embodiment

The third embodiment is described based on FIG. 16 through FIG. 19. Inthis embodiment, path operation is possible in prescribed units.

FIG. 16 a flowchart showing an outline of path operation processing.This processing can be executed with the storage management section 22of the management terminal 20. Firstly, the user calls up the pathconfiguration processing screen (S110), and selects from the menu(S111).

The operation menu can be, for example, a menu for manipulating pathconfiguration in units of external ports, a menu for manipulating pathconfiguration in units of external storage ports, or a menu formanipulating path configuration in units of external volumes 240.

When the user desires to process in units of external ports, the userselects the external port to be manipulated (S112). The managementterminal 20 displays the configuration of all paths connected to theexternal port in a list format (S113). The user selects all or some ofthe displayed paths, and instructs changes in the configuration (S114).Change in the configuration can be, for example, deletion of a path, orchange in the statue of a path (Disconnect→Normal, Normal→Disconnect)and the like.

In response to a request from the user, the management terminal 20creates a command to realize the content requested by the user, andsends this command to the first storage device 100 (S124). Details ofthis command have been previously described in FIG. 10 and FIG. 11.

As in the above, when the user desires to change path configuration inunits of external storage ports (external port units), the user selectsthe external port for which the configuration is to be changed (S131).The management terminal 20 displays the configuration of all pathsconnected to the selected external port in a list format (S132). Theuser selects all or some of the displayed paths, and requests changes inthe configuration (S133). The management terminal 20 creates thenecessary command, and sends it to the first storage device 100 (S134).

Similarly, when the user desires to change path configuration in unitsof external volumes, the user selects the desired external volume(S141). The management terminal 20 displays the configuration of allpaths connected to the selected external volume in a list format (S142).The user selects all or some of the displayed paths, and requestschanges in the configuration (S143). The management terminal 20 createsa command to realize the requested content, and sends it to the firststorage device 100 (S144).

When a change in configuration is instructed for a plurality of paths, acommand such as described in FIG. 10 and FIG. 11 is created for eachpath, and sent to the first storage device 100.

FIG. 17 is a screen example showing instructions for changing pathconfiguration in units of external ports. The plurality of tab menus B1through B3 are provided at the bottom of the area G1. When the userselects the tab menu B3 to instruct display of the external ports, alist of the plurality of external ports is displayed in the area G1. Theuser can select one of the desired external ports from this list.

When the user selects an external port (G11), the configurations of allpaths connected to this port are displayed in a list in the area G2. Theuser can select one or more (or all, hereafter the same) of the pathsfor which the configuration is to be changed from the displayed paths.For example, by providing the operation menu M1 in the form of a contextmenu, the user can then instruct path recovery and path disconnectionand the like.

FIG. 18 is a screen example showing instructions for changing pathconfiguration in units of external ports. When the user selects the tabmenu B2 to instruct display of the external ports, a list of theplurality of external ports is displayed in the area G1. The user canselect one of the desired external ports from this list.

When the user selects an external port (G12), the configurations of allpaths connected to this port are displayed in a list in the area G2. Asdescribed above, the user can select the desired path for which theconfiguration is to be changed from the displayed paths. The user canthen instruct path recovery and path disconnection and the like with theoperation menu M1.

FIG. 19 is a screen example showing instructions for changing pathconfiguration in units of external volumes. When the user selects thetab menu B1 to instruct display of the external volumes, a list of theexternal volumes is displayed in the area G1. The user can select one ofthe desired external volumes from this list.

When the user selects an external volume (G13), the configurations ofall paths connected to this volume 240 are displayed in a list in thearea G2. The user can select one or more of the desired paths for whichthe configuration is to be changed from the displayed paths. The usercan then instruct path recovery and path disconnection and the like withthe operation menu M1.

This embodiment provides for operation to change path configuration tobe conducted in the desired units. For example, when conductingmaintenance work and the like, all paths related to this work can bechanged to the disconnected state together and work conducted. If anyusable paths remain in this case, both maintenance work and storageservice can be conducted.

Fourth Embodiment

The present embodiment is described based on FIG. 20 and FIG. 21. Thisembodiment can prevent mistaken recognition of a failure prior to aplanned halt of the second storage device 200.

FIG. 20 is a flowchart showing an outline of the procedure for plannedmaintenance work on the second storage device 200 as external storage.Firstly, the access request (I/O) from the host 10 to the first storagedevice 100 is halted (S151).

Next, the states of the paths linking the first storage device 100 andthe second storage device 200 are changed to the disconnected state(S152). In this case, as described for the afore-mentioned embodiment,by changing path configuration in units of external ports or externalvolumes, ease of work can be improved.

After completing such preparations for maintenance, maintenancepersonnel commence maintenance work on the second storage device 200(S153). When maintenance work is complete (S154: YES), the states of thedisconnected paths are each restored to the normal state (S155). Theaccess request from the host 10 to the first storage device 100 isenabled (S156).

FIG. 21 is a flowchart showing failure detection processing. Thisprocessing may be executed by the controller 101 of the first storagedevice 100. The first storage device 100 evaluates whether or not a pathis used for connection with external storage (second storage device 200)(S161).

When the path is not used for external connection (S161: NO), the firststorage device 100 evaluates whether or not a failure has occurred inthe path (S162). When a failure is detected (S162: YES), the firststorage device 100 notifies the management center 30 of the occurrenceof a failure (S163). When the management center 30 receives thisnotification, it communicates this fact to, for example, maintenancepersonnel.

On the other hand, in the case of an external connection path (S161:YES), the first storage device 100 evaluates whether or not the path isin the disconnect state (S164). When the external connection path is notlogically disconnected (S164: NO), the first storage device 100 moves tothe previously described S162.

Conversely, when the external connection path is in the disconnectedstate (S164: YES), the first storage device 100 terminates thisprocessing without evaluating whether or not a failure has occurred. Inother words, the logically disconnected external connection path is notsubject to failure detection processing, and is ignored.

In the present embodiment, therefore, by changing the disconnectionstate of the external connection path prior to conducting maintenancework on external storage, sending of an incorrect notification to themanagement center 30 can be prevented beforehand, and ease of use isimproved.

Fifth Embodiment

FIG. 22 is a schematic diagram showing the storage system according tothe fifth embodiment. As shown in FIG. 22, in addition to the secondstorage device 200, a third storage device 200A can be added to thefirst storage device 100.

A plurality of V-VOL 162V are provided within the first storage device100, volumes 240 and 240A within the distinct external storage 200 and200A being mapped onto each V-VOL 162V.

The second storage device 200 is then operated in the multi-path mode,and the third storage device 200A is operated in the single path mode.Therefore, for example, when high-speed response is required, the secondstorage device 200 volume can be used, and when resistance to failurerather than high-speed response is emphasized, the third storage device200A can be used.

The present invention is not limited to the afore-mentioned embodiments.A variety of additions and changes and the like can be made by a givenoperator within the scope of the present invention. For example, it isalso possible to switch dynamically between the single path mode andmulti-path mode while in operation. Furthermore, for example, aplurality of groups each having a plurality of paths can be formed, andthe single path mode or multi-path mode may be applied to each pathgroup in some cases.

1. A storage system, comprising: a first storage device having a virtualvolume used by a host; and a second storage device having an actualvolume associated with the virtual volume and connected to the firststorage device via a plurality of communications paths, eachcommunications path being in a usable or unusable state, wherein thefirst storage device comprises: a mapping management section havingmapping information representing connections between the virtual volumeand the actual volume by communications paths, and mapping the actualvolume as the data storage destination volume of the virtual volume, anda control section, which includes the mapping management section, forprocessing access requests from the host to the virtual volume based onthe mapping information between the virtual volume and the actual volumemanaged by the mapping management section, wherein the control sectionselects at least one of the communications paths for processing of theaccess requests based on the mapping information, wherein priority ofeach of the communications paths is preset, wherein the control sectionselects at least one of the usable communications paths based on thepriority and uses the communications path, wherein the control sectionfurther comprises: a failure detector to detect whether or not a failurehas occurred in any of the communications paths, wherein at least one ofthe usable communications paths is selected and used when the failuredetector detects occurrence of a failure in a communications path inuse, wherein the mapping information managed by the mapping managementsection stores in corresponding relations at least: virtual volumeidentification information for identification of the virtual volume,actual volume identification information for identification of theactual volume, information on each path to access the actual volume fromthe virtual volume using the communications paths, state information toindicate whether each communications path is in a usable or unusablestate, and priority information including a different priority assignedto each of the communications paths, said priority information, by useof different priorities assigned to the communications paths, indicatesthe order of use of each of the usable communications paths whenreplacing a failed communications path, and wherein upon detection of afailure of one of the communications paths, said control section selectsone of the usable communications paths having the highest priority toreplace the failed communications path according to the priorityinformation of the mapping information.
 2. A storage system as claimedin claim 1, wherein the information on each path is configured byassociating first port information for identification of each of theplurality of first ports of the first storage device; second portinformation for identification of each of the plurality of second portsof the second storage device, and logical unit numbers (LUN) associatedwith each of the second ports.
 3. A storage system as claimed in claim1, further comprising: a management device connected to the firststorage device to allow Update of all or part of the mapping informationwith the management device.
 4. A storage system as claimed in claim 3,wherein the management device allows all or part of the mappinginformation to be updated for the each of at least one communicationspath connected to a preset prescribed connection point.
 5. A storagesystem as claimed in claim 2, further comprising: a management deviceconnected to the first storage device, and wherein all or part of themapping information can be updated for the each of at least onecommunications path connected to the first port, the second port, or theactual volume, by this management device.
 6. A storage system as claimedin claim 3, wherein the management device can update at least stateinformation included in the mapping information, and when halting thefirst storage device, the second storage device, or both, in a plannedmanner, changes the state of the prescribed communications pathsrelating to this planned halt from usable to unusable, and when theplanned halt is complete, changes again the state of the prescribedcommunications paths to usable.
 7. A storage system as claimed in claim6, wherein when a failure is detected in any of the communications pathsand the state of this communications path in which the failure occurredis set to the unusable state, the occurrence of this failure is ignored.8. A storage system as claimed in claim 7, wherein the priority is fixedeven when the management device changes the state of the prescribedcommunications path to the unusable state.
 9. A storage system asclaimed in claim 1, wherein the control section processes accessrequests while switching each communications path in sequence.
 10. Astorage system as claimed in claim 1, wherein the control section has afirst mode for processing access requests using one of thecommunications paths, and a second mode for processing access requestswhile switching between communications paths in sequence.
 11. A storagesystem as claimed in claim 10, further comprising: a third storagedevice having another actual volume associated with another virtualvolume of the first storage device, and connected to the first storagedevice via a plurality of other communications paths, and wherein thecontrol section can apply the first mode or second mode in units ofstorage devices.
 12. A method of storage system path control comprising:a first step of connecting a virtual volume of a first storage deviceand an actual volume of a second storage device via a plurality ofcommunications paths, and managing, in a control section of the firststorage system, mapping information indicating connections between thevirtual volume and the actual volume by communications paths, eachcommunications path being in a usable or unusable state; a second stepof processing, in the control section of the first storage system,access requests from the host to the virtual volume using one of thecommunications paths based on mapping information; a third step ofdetecting whether a failure has occurred or not in the communicationspaths; a fourth step of selecting at least one usable communicationspath when a failure occurs in a communications path while in use; and afifth step of processing access requests from the host using theselected communications path, wherein the first storage devicecomprises: the control section having a mapping management section whichmanages the mapping information, said control section conducts datacommunications between a host and the second storage device, whereinpriority of each of the communications paths is preset, wherein thecontrol section selects at least one of the usable communications pathsbased on the priority and uses the communications path, wherein thecontrol section further comprises a failure detector to detect whetheror not a failure has occurred in any of the communications paths,wherein at least one of the usable communications paths is selected andused when the failure detector detects occurrence of a failure in acommunications path in use, wherein the mapping information managed bythe mapping management section stores in corresponding relations atleast: virtual volume identification information for identification ofthe virtual volume, actual volume identification information foridentification of the actual volume, information on each path to accessthe actual volume from the virtual volume using the communicationspaths, state information to indicate whether each communications path isin a usable or unusable state, and priority information including adifferent priority assigned to each of the communications paths, saidpriority information, by use of different priorities assigned to thecommunications paths, indicates the order of use of each of the usablecommunications paths when replacing a failed communications path, andwherein upon detection of a failure of one of the communications paths,said control section selects one of the usable communications pathshaving the highest priority to replace the failed communications pathaccording to the priority information of the mapping information.
 13. Amethod of storage system path control as claimed in claim 12, furthercomprising: a sixth step wherein all or part of the mapping informationcan be updated for each of at least one communications path connected toa preset prescribed connection point.
 14. A method of storage systempath control as claimed in claim 13, wherein the first storage devicefurther comprises: a plurality of first ports, and wherein the secondstorage device further comprises: a plurality of second ports, whereinpath information is configured by associating the first port informationfor identifying each of the first ports with the second port informationfor identifying each of the second ports, and all or part of the mappinginformation can be updated for the each of at least one communicationspath connected to the first port or the second port in the sixth step.15. A storage system comprising: a first storage device processingaccess requests from a host; a second storage device connected to saidfirst storage device via a plurality of communications paths, eachcommunications path being in a usable or unusable state; and amanagement device connected to the first storage device, wherein thefirst storage device comprises: a virtual intermediate memory deviceconnected to the memory area of the memory device of the second storagedevice via the communications paths, a virtual volume provided in thememory area of the virtual intermediate memory device, a control sectionhaving a mapping management section which manages a mapping table, saidcontrol section conducts data communications between the host and thesecond storage device, and a memory section used by the communicationscontrol section, wherein said mapping table is stored in the memorysection, for mapping memory devices of the second storage device ontothe virtual intermediate memory device, wherein the control sectionexecutes: a step of using one of the communications paths for processingaccess requests from the host to the virtual volume based on the mappingtable, a step of detecting whether a failure has occurred or not in eachof the communications paths, a step of selecting at least one usablecommunications path when a failure occurs in a communications path inuse, and a step of processing access requests from the host using theselected communications path, wherein the management device has aconfiguration management unit which updates all or part of the mappingtable for the each of at least one communications path connected to apreset prescribed connection point, wherein priority of each of thecommunications path is preset, wherein the control section selects atleast one usable communications path based on the priority and uses thecommunications path, wherein the control section further comprises afailure detector to detect whether or not a failure has occurred in anyof the communications paths, wherein at least one of the usablecommunications paths is selected and used when the failure detectordetects occurrence of a failure in a communications path in use, whereinthe mapping table managed by the mapping management section stores incorresponding relations at least: virtual volume identificationinformation for identification of the virtual volume, actual volumeidentification information for identification of the actual volume,information on each path to access the actual volume from the virtualvolume using the communications paths, state information to indicatewhether each communications path is in a usable or unusable state, andpriority information including a different priority assigned to each ofthe communications paths, said priority information, by use of differentpriorities assigned to the communications paths, indicates the order ofuse of each of the usable communications paths when replacing a failedcommunications path, and wherein upon detection of a failure of one ofthe communications paths, said control section selects one of the usablecommunications paths having the highest priority to replace the failedcommunications path according to the priority information of the mappinginformation.